/*
 * nodo.c
 *
 *  Created on: 24/03/2013
 *      Author: dario
 */

#include "nodo.h"

Nodo* ConstruirNodo(void* element, Nodo* siguiente, void (*Funcion)(void* a)) {
	Nodo* n = (Nodo*) malloc(sizeof(Nodo));
	n->dato = element;
	n->enlazado = siguiente;
	n->DestructorDelDato = Funcion;
	return n;
}

void DestruirNodo(Nodo* ptr) {
	/*Si el destructor del dato es NULL, entonces no necesito destruirlo*/
	if (ptr->DestructorDelDato)
		ptr->DestructorDelDato(ptr->dato);
	free(ptr);

}

void SetElementoNodo(Nodo* ptr, void* e) {
	ptr->dato = e;
}

void* GetElementoNodo(Nodo* ptr) {
	return ptr->dato;
}

void SetNodoEnlazado(Nodo* ptr, Nodo* enlace) {
	ptr->enlazado = enlace;
}

Nodo* GetNodoEnlazado(Nodo* ptr) {
	return ptr->enlazado;
}
